import Vue from 'vue';
import Router from 'vue-router';

Vue.use(Router);
const router= new Router({
    routes: [
        {
            path: '/',
            redirect: '/login'
        },
        {
            path: '/',
            component: () => import(/* webpackChunkName: "home" */ '../components/common/Home.vue'),
            meta: { title: '自述文件' },
            children: [
                {
                    path: '/dashboard',
                    component: () => import(/* webpackChunkName: "dashboard" */ '../components/page/Dashboard.vue'),
                    meta: { title: '系统首页' }
                },
                {
                    path: '/icon',
                    component: () => import(/* webpackChunkName: "icon" */ '../components/page/Icon.vue'),
                    meta: { title: '自定义图标' }
                },
                {
                    path: '/users',
                    component: () => import(/* webpackChunkName: "users" */ '../components/page/Users.vue'),
                    meta: { title: '用户管理' }
                },
			 {
			     path: '/article',
			     component: () => import(/* webpackChunkName: "users" */ '../components/page/article/Article.vue'),
			     meta: { title: '帖子管理' }
			 },
			 {
			     path: '/articleInfo',
				name:'articleInfo',
			     component: () => import(/* webpackChunkName: "users" */ '../components/page/article/ArticleInfo.vue'),
			     meta: { title: '帖子预览' }
			 },
			 {
			     path: '/Datum',
			     component: () => import(/* webpackChunkName: "users" */ '../components/page/Datum.vue'),
			     meta: { title: '资料管理' }
			 },
			 {
			     path: '/menu',
			     component: () => import(/* webpackChunkName: "users" */ '../components/page/Menu.vue'),
			     meta: { title: '板块管理' }
			 },
			 {
			     path: '/notice',
			     component: () => import(/* webpackChunkName: "users" */ '../components/page/notice/Notice.vue'),
			     meta: { title: '新闻公告' }
			 },
			 {
			     path: '/noticeInfo',
				name:'noticeInfo',
			     component: () => import(/* webpackChunkName: "users" */ '../components/page/notice/NoticeInfo.vue'),
			     meta: { title: '新闻公告预览' }
				
			 },
			 {
			     path: '/loginfo',
			     component: () => import(/* webpackChunkName: "users" */ '../components/page/Loginfo.vue'),
			     meta: { title: '日志管理' }
			 },
                {
                    path: '/table',
                    component: () => import(/* webpackChunkName: "table" */ '../components/page/BaseTable.vue'),
                    meta: { title: '基础表格' }
                },
                {
                    path: '/tabs',
                    component: () => import(/* webpackChunkName: "tabs" */ '../components/page/Tabs.vue'),
                    meta: { title: 'tab选项卡' }
                },
                {
                    path: '/form',
                    component: () => import(/* webpackChunkName: "form" */ '../components/page/BaseForm.vue'),
                    meta: { title: '基本表单' }
                },
                {
                    // 富文本编辑器组件
                    path: '/editor',
                    component: () => import(/* webpackChunkName: "editor" */ '../components/page/VueEditor.vue'),
                    meta: { title: '富文本编辑器' }
                },
                {
                    // markdown组件
                    path: '/markdown',
                    component: () => import(/* webpackChunkName: "markdown" */ '../components/page/Markdown.vue'),
                    meta: { title: 'markdown编辑器' }
                },
                {
                    // 图片上传组件
                    path: '/upload',
                    component: () => import(/* webpackChunkName: "upload" */ '../components/page/Upload.vue'),
                    meta: { title: '文件上传' }
                },
                {
                    // vue-schart组件
                    path: '/charts',
                    component: () => import(/* webpackChunkName: "chart" */ '../components/page/BaseCharts.vue'),
                    meta: { title: 'schart图表' }
                },
                {
                    // 拖拽列表组件
                    path: '/drag',
                    component: () => import(/* webpackChunkName: "drag" */ '../components/page/DragList.vue'),
                    meta: { title: '拖拽列表' }
                },
                {
                    // 拖拽Dialog组件
                    path: '/dialog',
                    component: () => import(/* webpackChunkName: "dragdialog" */ '../components/page/DragDialog.vue'),
                    meta: { title: '拖拽弹框' }
                },
                {
                    // 国际化组件
                    path: '/i18n',
                    component: () => import(/* webpackChunkName: "i18n" */ '../components/page/I18n.vue'),
                    meta: { title: '国际化' }
                },
                {
                    // 权限页面
                    path: '/permission',
                    component: () => import(/* webpackChunkName: "permission" */ '../components/page/Permission.vue'),
                    meta: { title: '权限测试', permission: true }
                },
                {
                    path: '/404',
                    component: () => import(/* webpackChunkName: "404" */ '../components/page/404.vue'),
                    meta: { title: '404' }
                },
                {
                    path: '/403',
                    component: () => import(/* webpackChunkName: "403" */ '../components/page/403.vue'),
                    meta: { title: '403' }
                },
                {
                    path: '/donate',
                    component: () => import(/* webpackChunkName: "donate" */ '../components/page/Donate.vue'),
                    meta: { title: '支持作者' }
                }
            ]
        },
        {
            path: '/login',
            component: () => import(/* webpackChunkName: "login" */ '../components/page/Login.vue'),
            meta: { title: '登录' }
        },
	   {
	       path: '/register',
	       component: () => import('../components/page/Register.vue'),
	       meta: { title: '注册' }
	   },
        {
            path: '*',
            redirect: '/404'
        }
    ]
});
// 导航守卫
// 使用 router.beforeEach 注册一个全局前置守卫，判断用户是否登陆
router.beforeEach((to, from, next) => {
if (to.path === '/login') {
	console.log(to.fullPath)
    next();
} else {
	console.log("导航守卫")
//	//取token
    let token = localStorage.getItem('Authorization');
   	
    if (token === 'null' || token === '') {//如果token不存在
      console.log("token==null to /login")
      
      next('/login');//跳转至登录页面
    } else {    	
      console.log(to.fullPath)    	
      next();//正常跳转
    }
}
});

export default router;